<?php 

/*require_once "../manejador.php";
			$queEmp = "SELECT * FROM asignacion";

			$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
			$totEmp = mysql_num_rows($resEmp);
  while ($rowEmp = mysql_fetch_assoc($resEmp))
		{
*/


/*	LISTADO DE TAREAS DE UN PROYECTO  */
function tareas_proyecto($proyecto, $conexion){
	$queEmp = "SELECT * FROM accion where id_proyecto=".$proyecto;
			$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
return $resEmp;
	}
/*  TAREAS HIJOS DE UNA TAREA PADRE  */
function sub_tarea($elemento, $conexion){
		$queEmp = "SELECT a.id_accion FROM accion a
		JOIN nivel n
		ON n.id_child=a.id_accion
		where n.id_parent=".$elemento;

			$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
		
			return $resEmp;
}
function sub_tarea_imprimir($elemento, $conexion){
		$queEmp = "SELECT a.id_accion FROM accion a
		JOIN nivel n
		ON n.id_child=a.id_accion
		where n.id_parent=".$elemento;

		$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
		  while ($rowEmp = mysql_fetch_assoc($resEmp)){
			  
			  echo "<br>";
			  echo $rowEmp['id_accion'];

			  }
}


/*  NUMERO DE HIJOS QUE TIENE UN ELEMENTO  */
function num_hijos($elemento, $conexion){
		$queEmp = "SELECT * FROM accion a
		JOIN nivel n
		ON n.id_child=a.id_accion
		where n.id_parent=".$elemento;

			$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
			$totEmp = mysql_num_rows($resEmp);
			
			return $totEmp;
}
/*  RECUPERAR INFORMACION DE LA TAREA  */
function sacar_tarea($elemento, $conexion){
		$queEmp = "SELECT * FROM accion where id_accion=".$elemento;
		$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
		return $resEmp;
	}


/*  FACTORIAL DE PRUEBA / EJEMPLO - RECURSIVIDAD*/


		function factorial($n)  //se recibe el id de un elemento
		{
			if($n==0) 			//si el elemento NO tiene hijos ,  se muestra
			{ echo "paro cuando valor vale $n"."<br>";
			return 1;
			}
			else				// pero SI tiene hijos
			{
				$valor=$n*factorial($n-1);  // buscamos los hijos que tenga
				echo "el valor devuelto por la llamada recursiva cuando n vale $n es : $valor "."<br>";
				return $valor;
			}
		}

/*  SACAR LA JERARQUIA DE NIVELES*/
//recibe el id de la tarea
		function recursivo($n, $conexion)
		{
//			echo "nodo entrante:".$n."<br>";//generacion demuestras
			plan_trabajo($n,$conexion);
						
			if(num_hijos($n, $conexion)==0) //si numero de hijos es igual a 0  muestra tarea 
			{ 
//			echo "es solo<br>";
//			echo "paro cuando valor vale $n"."<br>";
			$resEmp=sacar_tarea($n, $conexion);
			$rowEmp = mysql_fetch_assoc($resEmp);
//			echo $rowEmp['id_accion'];
			echo "<br>";
			return 1;
			}
			else
			{
	//			echo "nodo entrante con hijos:".$n."<br>";
				$resq=sub_tarea($n, $conexion);
				while($rowEp = mysql_fetch_assoc($resq))
				{
		//			echo "primera rama:".$rowEp['id_accion']."<br>";
					recursivo($rowEp['id_accion'], $conexion);
		//			echo "el valor devuelto, vale $n es :  "."<br>";
					
				}
				return "0";

			}
		}
		/* recursividad */
		
/*  	MOSTRAR TAREA*/
function mostrar_tareas($result_q){

		while ($rowEmp = mysql_fetch_assoc($result_q))
		{
	echo "<tr>";
	echo "<td><input id='select' name='select' type='checkbox' value='".$rowEmp ['id_accion']."'/></td>";
	
	if($rowEmp['nivel']>1){
		if($rowEmp['nivel']==2){
			echo "<td><div class='nivel-2'>&nbsp;&nbsp;&nbsp;&nbsp;".$rowEmp['nombre']."</div></td>";
		}
		if($rowEmp['nivel']==3){
			echo "<td><div class='nivel-3'>&nbsp;&nbsp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$rowEmp['nombre']."</div></td>";
		}
		if($rowEmp['nivel']==4){
			echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$rowEmp['nombre']."</td>";
		}
	}else{
		echo "<td><div class='nivel-1'>".$rowEmp['nombre']."</div></td>";
	}
	
	echo "<td>".$rowEmp['descripcion']."</td>";
	echo "<td>".$rowEmp['prioridad']."</td>";
	echo "<td>".$rowEmp['dependiente']."</td>";
	echo "<td>".$rowEmp['fh_creacion']."</td>";
	echo "<td>".$rowEmp['fh_inicio']."</td>";
	echo "<td>".$rowEmp['fh_fin']."</td>";
	echo "</tr>";
		}

}


//recursivo2($_POST["id_proyecto"], $conexion);
/*  RECURSION NORMAL*/		
function recursivo2($n, $conexion)
		{
//			echo "nodo entrante:".$n."<br>";//generacion demuestras
//			plan_trabajo($n,$conexion);
			$result=sacar_tarea($n, $conexion);
			mostrar_tareas($result);
			if(num_hijos($n, $conexion)==0) //si numero de hijos es igual a 0  muestra tarea 
			{ 
//			echo "es solo<br>";
//			echo "paro cuando valor vale $n"."<br>";
			$resEmp=sacar_tarea($n, $conexion);
			$rowEmp = mysql_fetch_assoc($resEmp);
//			echo $rowEmp['id_accion'];
			echo "<br>";
			return 1;
			}
			else
			{
	//			echo "nodo entrante con hijos:".$n."<br>";
				$resq=sub_tarea($n, $conexion);
				while($rowEp = mysql_fetch_assoc($resq))
				{
		//			echo "primera rama:".$rowEp['id_accion']."<br>";
					recursivo2($rowEp['id_accion'], $conexion);
		//			echo "el valor devuelto, vale $n es :  "."<br>";
					
				}
				return "0";

			}
		}
		
		
/*  GENERACION DE LA VISTA PLAN DE TRABAJO  */


//con la conexcion y el id_proyecto

/*  SACAR NIVEL EN BASE ALID*/
function sacar_nivel($elemento){
	$queEmp = "SELECT nivel FROM accion where id_accion=".$elemento;
			$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
return $resEmp;
}
/*  OBTENER EL ID DEL ULTIMO REGISTRO INSERTADO */

function ultimo_registro()
{
	$queEmp = "SELECT *
				FROM accion
				ORDER BY id_accion DESC
				LIMIT 1";
		$result = mysql_query($queEmp, $conexion) or die(mysql_error());
return $result;
}
/*  INSERTAR LA RELACION ENTRE TAREA Y SUBTAREA*/

function relacion_nivel($tarea,$subtarea){
$queEmp="INSERT INTO gestion.nivel (
id_parent ,
id_child
)
VALUES (
".$tarea." , ".$subtarea."
)";
$result = mysql_query($queEmp, $conexion) or die(mysql_error());
}

function insert_update($table,$fields,$id=NULL)
{
    if($id===NULL)
    {
        $sql="INSERT INTO $table (id) VALUES(NULL);UPDATE $table SET $fields WHERE id = LAST_INSERT_ID()";
    }else{
        $sql="UPDATE $table SET $fields WHERE id = $id";
    }
    return $sql;
}
?>
